#ifndef IOPORT_H_
#define IOPORT_H_

#include "types.h"
#include "exception.h"

#define GENERAL_IO_EXCEPTION 1001
#define INVALID_IO_POINTER_OPERATION 1002

inline extern void bitSet(volatile BYTE *pSource, const BYTE bit) __attribute__ ((always_inline));
inline extern void bitReset(volatile BYTE *pSource, BYTE bit) __attribute__ ((always_inline));
inline extern BOOL bitState(const BYTE *pSource, BYTE bit) __attribute__ ((always_inline));
inline extern void writeByte(volatile BYTE *pSource, BYTE value) __attribute__ ((always_inline));
inline extern void moveByte(const BYTE *pSource, volatile BYTE *pDest) __attribute__ ((always_inline));
inline extern void pointTo(const BYTE *pFrom, volatile BYTE *pTo) __attribute__ ((always_inline));

#endif /*IOPORT_H_*/
